/**
 * 底层通讯服务
 *
 * @author chitanda
 * @date 2022-05-19 11:05:53
 * @export
 * @class IPCService
 */
export class IPCService {
  /**
   * 最小化
   *
   * @author chitanda
   * @date 2022-06-07 14:06:59
   */
  min(): void {
    ipcRenderer.send('min');
  }

  /**
   * 最大化
   *
   * @author chitanda
   * @date 2022-06-07 14:06:35
   */
  max(): void {
    ipcRenderer.send('max');
  }

  /**
   * 关闭窗口
   *
   * @author chitanda
   * @date 2022-06-07 14:06:50
   */
  close(): void {
    ipcRenderer.send('close');
  }

  /**
   * 打开 MosDynamic 窗口
   *
   * @author chitanda
   * @date 2022-06-09 10:06:25
   * @param {string} psDevSlnSys
   * @param {boolean} [manage] true 时打开管理端
   */
  openMosDynamic(psDevSlnSys: string, manage?: boolean): void {
    ipcRenderer.send('openMosDynamic', psDevSlnSys, manage);
  }

  /**
   * 设置 token
   *
   * @author chitanda
   * @date 2022-06-09 17:06:18
   * @param {string} token
   * @return {*}  {boolean}
   */
  setToken(token: string): boolean {
    return ipcRenderer.sendSync('setToken', token);
  }

  /**
   * 登录
   *
   * @author chitanda
   * @date 2022-06-09 17:06:06
   * @param {string} loginname
   * @param {string} password
   * @return {*}  {Promise<boolean>}
   */
  async login(loginname: string, password: string): Promise<void> {
    ipcRenderer.send('login', loginname, password);
  }

  /**
   * 登出用户
   *
   * @author chitanda
   * @date 2022-06-10 11:06:46
   */
  logout(): void {
    ipcRenderer.send('logout');
  }
}
// 与主进程通信
export const ipc = new IPCService();
